package com.easyCode.sqlMapper.mapInfo;

import com.easyCode.util.StringUtil;
import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;

/**
 * @author 大忽悠
 * @create 2022/12/2 14:24
 */
@Data
@Builder
public class TableMapInfo implements MapInfo {
    /**
     * 表名
     */
    private String tableName;
    /**
     * 字段列表
     */
    private List<FiledMapInfo> filedMapInfos;
    /**
     * 主键名
     */
    private String primaryKeyName;
    /**
     * 注释信息
     */
    private String comment;

    public String getJavaFileName() {
       return getTableName()+".java";
    }

    public String getTableName() {
        return StringUtil.firstCharToUpper(tableName);
    }

    /**
     * 当前表是否定义了时间字段属性
     */
    public boolean hasLocalDateTimeFiled(){
        return filedMapInfos.stream().anyMatch(FiledMapInfo::localDateTime);
    }

    public boolean hasPrimaryKey(){
        return !StringUtil.isNullOrEmpty(primaryKeyName);
    }
}
